package com.liuugoqing.behavioral.order;

import java.util.ArrayList;
import java.util.List;

/**
 * 调用者/请求者（Invoker）角色： 要求命令对象执行请求，通常会持有命令对象，可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方，也就是说相当于使用命令对象的入口
 * @Author : liugq
 * @Date : 2022/7/6 17:21
 * @See : 参考类
 * @Since： JDK1.8
 * @Version : 1.0
 */
public class Waitor {
    //可以持有很多的命令对象
    private List<Command> commands = new ArrayList<>();

    public void setCommands(Command command) {
        this.commands.add(command);
    }

    // 发出命令 喊 订单来了，厨师开始执行
    public void orderUp() {
        System.out.println("美女服务员：叮咚，大厨，新订单来了.......");
        for (int i = 0; i < commands.size(); i++) {
            Command cmd = commands.get(i);
            if (cmd != null) {
                cmd.execute();
            }
        }
    }

}
